import requests
from config import url, headers_web


class CourseTheme:

    def __int__(self):
        self.url = url
        self.headers = headers_web

    @classmethod
    def post_add_or_update_theme(cls,url:str,headers,params,json):
        """
        @Summary:新增、修改主题信息
        @Description:云课堂老师端-新增、修改主题信息
        :param url:
        :param headers:
        :param params:validCode:&signKey=123123
        :param json:{
                        "courseStructureId":"", # 章节id
                        "id":"", #主题id，获取详情以及修改主题时使用
                        "operatorId":"", # 操作人id
                        "operatorName":"" # 操作人姓名
                        "themeDetailList":[{
                            "content":"", # 主题详情内容
                            "id":"", # 主题详情id
                            "showOrder":"" # 主题详情排序
                        }],
                        "themeName":"",# 主题名称
                        "whetherPublic":"" # 是否公开
                        }
        :return:
        """
        url = url + "/courseApi/v1/coursetheme"
        r = requests.post(url=url,params=params,headers=headers,json=json)
        return r

    @classmethod
    def get_all_theme(cls,url:str,headers,params):
       """
        @Summary:获取老师课程下可用的主题信息
        @Description:互动课堂使用-获取老师课程下可用的主题信息
       :param url:
       :param headers:
       :param params:{
                        "courseId":"", # 课程id
                        "teacherId":"", # 教师id
                        "validCode":"" # &signKey=123123
                        }
       :return:object:{
                        "courseStructureId":"", # 章节id
                        "id":"", #主题id，获取详情以及修改主题时使用
                        "operatorId":"", # 操作人id
                        "operatorName":"" # 操作人姓名
                        "themeDetailList":[
                            "content":"", # 主题详情内容
                            "id":"", # 主题详情id
                            "showOrder":"" # 主题详情排序
                        ],
                        "themeName":"",# 主题名称
                        "whetherPublic":"" # 是否公开
                        }
       """
       url = url + f"/courseApi/v1/coursetheme/teacher"

       r = requests.get(url=url,headers=headers,params=params)

       return r

    @classmethod
    def get_course_theme_detail(cls,url:str,headers,params,paramspath):
        """

        :param url:
        :param headers:
        :param params:validCode:id={}&signKey=123123
        :param paramspath:id:主题信息id
        :return:object:{
                        "courseStructureId":"", # 章节id
                        "id":"", #主题id，获取详情以及修改主题时使用
                        "operatorId":"", # 操作人id
                        "operatorName":"" # 操作人姓名
                        "themeDetailList":[
                            "content":"", # 主题详情内容
                            "id":"", # 主题详情id
                            "showOrder":"" # 主题详情排序
                        ],
                        "themeName":"",# 主题名称
                        "whetherPublic":"" # 是否公开
                        }
        """
        url = url + f"/courseApi/v1/coursetheme/{paramspath}"

        r = requests.get(url=url,headers=headers,params=params)

        return r